package com.mybatisflex.example.service;

import com.mybatisflex.core.service.IService;
import com.mybatisflex.example.controller.response.DistrictCityRsp;
import com.mybatisflex.example.controller.response.DistrictRsp;
import com.mybatisflex.example.pojo.domain.mysql.District;

import java.util.Collection;
import java.util.List;

/**
 * 行政区信息 服务层。
 *
 * @author tanyunpeng
 * @since 2024-02-28
 */
public interface DistrictService extends IService<District> {
    /**
     * 根据编码查询
     */
    District findByCode(Integer code);

    /**
     * 根据名称模糊查询
     */
    List<District> findByNameLike(String name);

    /**
     * 根据上级编码查询
     */
    List<District> findByParentCodeIn(Collection<Integer> parentCodes);

    /**
     * 行政区域查询
     */
    List<DistrictRsp> district(String keywords, Integer subDistrict);

    /**
     * 行政区域查询-首字母
     */
    List<DistrictCityRsp> initial(Integer subDistrict);

    /**
     * 根据级别查询行政区
     */
    List<DistrictRsp> getDistrictByLevel(Integer level);
}
